<?php
namespace app\admin\controller;

use app\BaseController;

class Test extends BaseController
{
	
    public function index()
    {
    	var_dump(2323);die;
    }

    public function middleTest()
    {
        $temp = [
            "name" => "李江东",
            "class_id" => 5,
            "room_id" => 10,
            "age" => 18,
            "create_time" => 14664545445
        ];
        return json($temp);
    }

    // 测试ElasticSearch
    public function esTest()
    {
        $res = app('es')->info();
        dump($res);die;

        var_dump('你好啊');die;
    }

    // 创建一个索引
    public function createIndex()
    {
        //var_dump('hello fuca1995');die;
//        $data = [
//            "age": {
//        "type": "long"
//                },
//                "height": {
//        "type": "long"
//                },
//                "name": {
//        "type": "text",
//                    "fields": {
//            "keyword": {
//                "type": "keyword",
//                            "ignore_above": 256
//                        }
//                    }
//                }
//        ];

//        $data = [
//            "class_name" => [
//                "type" => "text"
//            ],
//            "level" => [
//                "type" => "long",
//            ]
//        ];
        $res = app('es')->index("goods");
        var_dump($res);die;
    }

    // 创建文档
    public function createDoc()
    {
//        $data = [
//            [
//                'id' => 3,
//                'class_name' => '尖子班2',
//                'level' => 4
//            ],
//            [
//                'id' => 3,
//                'class_name' => '重点班',
//                'level' => 4
//            ],
//            [
//                'id' => 4,
//                'class_name' => '普通版',
//                'level' => 4
//            ],
//            [
//                'id' => 5,
//                'class_name' => '普通班',
//                'level' => 4
//            ],
//            [
//                'id' => 6,
//                'class_name' => '努力奋斗班',
//                'level' => 4
//            ],
//            [
//                'id' => 7,
//                'class_name' => '加油班',
//                'level' => 4
//            ]
//        ];
//
//        foreach($data as $val) {
//            $res = app('es')->createDoc('class',$val);
//        }
//
//        var_dump($res); die;

            $goodsList = \app\common\model\Goods::page(0,1500)->select()->toArray();

            foreach ($goodsList as $val) {
                $res = app('es')->createDoc('goods',$val);
            }

            dump($res);die;

            $goods = \app\common\model\Goods::find(1);
            var_dump($goods);die;

    }

    // 搜索
    public function queryDoc()
    {
        // 获取所有
        $where = [
            'match_all' => new \stdClass(),                 // 空对象，PHP5.3  或者     (object)[]    //也是给出空数组的方式
        ];

        // 单字段完全匹配
//        $where = [
//            'match_phrase' => [
//                'class_name' => '班',
//            ]
//        ];

        // 单字段模糊匹配
//        $where = [
//            'match' => [
//                'goods_name' => '苹果'
//            ]
//        ];

        // 多字段匹配
//        $where = [
//            'multi_match' => [
//                'query' => '苹果',
//                'fields' => ['goods_name'],     //这里添加多字段
//                'type' => 'best_fields'         //most_fields多字段匹配更高，best_fields完全匹配占比更高
//            ]
//        ];

        // 联合搜索must联合必须,should联合可以,must_not联合不必须, 联合搜索类似SQL的多字段查询(就使用must)
//        $where = [
//            'bool' => [
//                'must' => [
//                    'match' => [
//                        'goods_name' => '苹果'
//                    ]
//                ],
//                'should' => [
//                    'match' => [
//                        'level' => '3'
//                    ]
//                ]
//            ]
//        ];

        // 排序非必填
        $sort = [
            "sort" => "asc"
        ];

        $res = app('es')->query('goods',$where,$sort,0,3000);
        dump($res);die;

//        $res = app('es')->queryData('class','class_name',0,20);
//        dump($res);die;
    }

    // 获取索引(索引中的某个文档)
    public function getDoc()
    {
        $res = app('es')->getIndex('goods',1500);
        dump($res);die;
    }

    // 获取的索引配置
    public function getIndexConfig()
    {
        $res = app('es')->getIndexConfig('class,user,goods');
        dump($res);die;
    }


    
}
